﻿using IRepositoryDal;
using Microsoft.EntityFrameworkCore;
using RepositoryEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RepositoryDal
{
    /// <summary>
    /// 用户数据库访问层
    /// </summary>
    public class UserInfoDal : BaseDal<UserInfo>, IUserInfoDal
    {
        //数据库上文
        RepositoryDbContext _DbContext;

        public UserInfoDal(RepositoryDbContext DbContext) : base(DbContext)
        {
            _DbContext = DbContext;
        }

        ///// <summary>
        ///// 添加用户
        ///// </summary>
        ///// <param name="userInfo"></param>
        ///// <returns></returns>
        //public bool AddUserInfo(UserInfo userInfo)
        //{
        //    _DbContext.UserInfo.Add(userInfo);
        //    int index = _DbContext.SaveChanges();
        //    if (index > 0)
        //    {
        //        return true;
        //    }
        //    else
        //    {
        //        return false;
        //    }
        //}

        ///// <summary>
        ///// 删除用户
        ///// </summary>
        ///// <returns></returns>
        //public bool DeleteUserInfo(string userInfoId)
        //{
        //    //根据用户id查询要删除的用户对象
        //    UserInfo userInfo = _DbContext.UserInfo.FirstOrDefault(u => u.ID == userInfoId);
        //    if (userInfo == null)
        //    {
        //        return false;
        //    }
        //    else
        //    {
        //        _DbContext.UserInfo.Remove(userInfo);
        //        int index = _DbContext.SaveChanges();
        //        if (index > 0)
        //        {
        //            return true;
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //    }
        //}

        /// <summary>
        /// 根据id获取用户信息
        /// </summary>
        /// <param name="userInfoId">用户id</param>
        /// <returns></returns>
        public UserInfo GetUserInfo(string userInfoId)
        {
            UserInfo userInfo = _DbContext.UserInfo.FirstOrDefault(u => u.ID == userInfoId);
            return userInfo;
        }

        /// <summary>
        /// 获取用户集合
        /// </summary>
        /// <returns></returns>
        public List<UserInfo> GetUserInfos()
        {
            return _DbContext.UserInfo.ToList();
        }

        /// <summary>
        /// 获取用户集合（未真实查询出来的数据）
        /// </summary>
        /// <returns></returns>
        public DbSet<UserInfo> GetUserInfosDb()
        {
            return _DbContext.UserInfo;
        }

        ///// <summary>
        ///// 更新用户
        ///// </summary>
        ///// <param name="userInfo"></param>
        ///// <returns></returns>
        //public bool UpdateUserInfo(UserInfo userInfo)
        //{
        //    UserInfo entity = _DbContext.UserInfo.FirstOrDefault(u => u.ID == userInfo.ID);
        //    entity.UserName = userInfo.UserName;
        //    entity.PhoneNum = userInfo.PhoneNum;
        //    entity.Email = userInfo.Email;
        //    entity.Sex = userInfo.Sex;
        //    int index = _DbContext.SaveChanges();
        //    if (index > 0)
        //    {
        //        return true;
        //    }
        //    else
        //    {
        //        return false;
        //    }
        //}
    }
}
